package com.cdeledu.thread4.c03;

import java.util.concurrent.TimeUnit;

public class IsInterruptedTest {

	public static void main(String[] args) throws InterruptedException {
		Thread thread = new Thread() {
			@Override
			public void run() {
				while (true) {
					// do nothing, just empty loop.
				}
			}
		};
		thread.start();
		TimeUnit.MILLISECONDS.sleep(2);
		System.out.printf("Thread is interrupted ? %s\n", thread.isInterrupted());
		thread.interrupt();
		System.out.printf("Thread is interrupted ? %s\n", thread.isInterrupted());
	}
	// 上面的代码中定义了一个线程，并且在线程的执行单元中（run方法）写了一个空的死循环，为什么不写sleep呢？因为sleep是可中断方法，会捕获到中断信号，从而干扰我们程序的结果。下面是
	// 程序运行的结果，记得手动结束上面的程序运行，或者你也可以将上面定义的线程指定为守护线程，这样就会随着主线程的结束导致JVM中没有非守护线程而自动退出。
	// Thread is interrupted ? false
	// Thread is interrupted ? true

}
